﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BLLUtilidades;

namespace BLLConDes
{
    public class BLLProducto: BLLPadre<ConDescuentoDataContext>
    {
        public BLLProducto(ConDescuentoDataContext contexto) : base(contexto) { }
        public BLLProducto() : this(new ConDescuentoDataContext()) { }

        public List<CD_Producto> TraerProductos(int idCategoria)
        {
            return (from p in Contexto.CD_Productos
                    where p.IdCategoria == idCategoria
                    select p).ToList();
        }

        public CD_Producto TraerProducto(int idProducto)
        {
            return Contexto.CD_Productos.Where(p => p.IdProducto == idProducto).FirstOrDefault();
        }

        public List<string> TraerFotos(int idProducto)
        {
            return (from p in Contexto.CD_ProductoFotos
                    where p.IdProducto == idProducto
                    select p.Archivo).ToList();
        }

        public List<CD_Producto> BuscarProductos(string parametros)
        {
            return (from p in Contexto.CD_Productos
                    where p.Nombre.ToLower().Contains(parametros.ToLower())
                    orderby p.IdProducto descending
                    select p).ToList();
        }

        public List<CD_Producto> TraerProductos()
        {
            return Contexto.CD_Productos.ToList();
        }

        public void CargarNuevo(CD_Producto producto)
        {
            Contexto.CD_Productos.InsertOnSubmit(producto);
        }

        public void Eliminar(int idProducto)
        {
            CD_Producto producto = TraerProducto(idProducto);
            Contexto.CD_Productos.DeleteOnSubmit(producto);
        }
    }
}
